A goal of memory allocation algorithms may be to reduce or eliminate memory fragmentation. Memory fragmentation may result when free blocks are interleaved with reserved blocks.
One example of an allocation policy to limit memory fragmentation is a segregated free lists policy. A segregated free lists policy uses a set of free lists, where each free list identifies free blocks having sizes that fall within a determined range. When a memory block is requested, the free list corresponding to the size of the memory block is searched to find a free memory block of the appropriate size.